/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entidades.controladores;

import entidades.EquipoMaestro;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import java.text.SimpleDateFormat;
import java.text.DateFormat;
import java.util.Date;


/**
 *
 * @author alphyon
 */
public class EquipoMaestroJDBC {
    PreparedStatement ps = null;
    Connection conn = null;
    ResultSet rs = null;
    DateFormat dateformat = new SimpleDateFormat("dd/MM/yyyy");
    public EquipoMaestroJDBC(){
        cargarDriver();
        coneccion();
    }
     public void cargarDriver(){
       try{
           Class.forName("org.gjt.mm.mysql.Driver");
           System.out.println("Carga de driver Correcta......");
       }catch(Exception e){
           System.out.print("A ocurrido Un problema" +
                   "en la caraga del Driver"+e.getMessage());
       }
   }

   public void coneccion(){

       try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/inventario_control", "chepe", "gundam");
            System.out.println("Conexion Satisfactoria...");
        } catch(SQLException e) {
            e.printStackTrace();
        }

   }


    public int crearEquipoMaestro(EquipoMaestro maestro) {
        int flag=0;
        
        try{
        Date fechac=dateformat.parse(maestro.getFechaCompra());
        Date fechar=dateformat.parse(maestro.getFechaRecepcion());
        String SQL="";
        SQL=SQL+"INSERT INTO equipo_maestro (id,cod_inventario,fecha_compra,fecha_recepcion,no_factura,status,id_proveedor,estado)";
        SQL=SQL+" VALUES(?,?,?,?,?,?,?,?);";

        ps = conn.prepareStatement(SQL);

        ps.setInt(1, maestro.getId());
        ps.setString(2, maestro.getCodInventario());
        ps.setDate(3,new java.sql.Date(fechac.getTime()));
        ps.setDate(4,new java.sql.Date(fechar.getTime()));
        ps.setString(5, maestro.getNoFactura());
        ps.setString(6, maestro.getStatus());
        ps.setString(7, maestro.getIdProveedor());
        ps.setBoolean(8, maestro.getEstado());
        


        flag=ps.executeUpdate();

        }catch(Exception e){
           e.printStackTrace();
        }finally{
             try {
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

       return flag;
    }

    public int borrarRegistroEquipoMaestro(int id){
        int flag=0;
        String SQL = "DELETE FROM equipo_maestro WHERE id=?";


        try {
            ps = conn.prepareStatement(SQL);
            ps.setInt(1, id);
            flag=ps.executeUpdate();
        } catch (SQLException e) {
           e.printStackTrace();
        }

        return flag;
    }
    public int actualizarEquipoMaestro(EquipoMaestro maestro) {
        int flag=0;

        try{
        Date fechac=dateformat.parse(maestro.getFechaCompra());
        Date fechar=dateformat.parse(maestro.getFechaRecepcion());
        String SQL="";
        SQL=SQL+"UPDATE equipo_maestro  SET cod_inventario=?,fecha_compra=?,fecha_recepcion=?,no_factura=?,status=?,id_proveedor=?,estado=? WHERE id=?";


        ps = conn.prepareStatement(SQL);


        ps.setString(1, maestro.getCodInventario());
        ps.setDate(2,new java.sql.Date(fechac.getTime()));
        ps.setDate(3,new java.sql.Date(fechar.getTime()));
        ps.setString(4, maestro.getNoFactura());
        ps.setString(5, maestro.getStatus());
        ps.setString(6, maestro.getIdProveedor());
        ps.setBoolean(7, maestro.getEstado());
        ps.setInt(8, maestro.getId());

        flag=ps.executeUpdate();

        }catch(Exception e){
           e.printStackTrace();
        }finally{
             try {
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

       return flag;
    }
    public LinkedList<EquipoMaestro> getEquipoMaestro(){
       LinkedList<EquipoMaestro> lista=new LinkedList<EquipoMaestro>();

       String SQL="SELECT * FROM maestro";
        try {
            ps = conn.prepareStatement(SQL);
            rs = ps.executeQuery();

            while(rs.next()){

                EquipoMaestro maestro = new EquipoMaestro();
                maestro.setId(rs.getInt("id"));
                maestro.setCodInventario(rs.getString("cod_inventario"));
                maestro.setEstado(rs.getBoolean("estado"));
                maestro.setFechaCompra(dateformat.format(rs.getDate("fecha_compra")));
                maestro.setFechaRecepcion(dateformat.format(rs.getDate("fecha_recepcion")));
                maestro.setIdProveedor(rs.getString("id_proveedor"));
                maestro.setNoFactura(rs.getString("no_factura"));
                maestro.setEstado(rs.getBoolean("estado"));
                



                lista.add(maestro);

            }


        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
             try {
              if (rs != null) rs.close();
              if (ps != null) ps.close();
              if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        return lista;


   }


}
